// SMSQueue.h: interface for the CSMSQueue class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SMSQUEUE_H__CE6B60AC_E02C_4908_9180_AEBFD9A18166__INCLUDED_)
#define AFX_SMSQUEUE_H__CE6B60AC_E02C_4908_9180_AEBFD9A18166__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CSMSItem;
class CAccount;
class CSMSQueue  
{
public:
	CSMSQueue();
	virtual ~CSMSQueue();
public:
	void SubmitSMS(CSMSItem* pSMS)  //Submit a SMS to SMSQueue
	{
		m_WaittingList.push_back(pSMS);
	}
	void SendOut();    //Send out SMS by IF's send function
	void SetParent(CAccount* p);
	CAccount* GetParent();
protected:
	std::map<unsigned long, CSMSItem*> m_SendingMap;  //The SMS is sending
	std::list<CSMSItem*> m_WaittingList;      //The SMS waiting to send
	CAccount*   m_pParent;
public:
    LOG4CPLUS_CLASS_DECLARE( _s_logger );

};

#endif // !defined(AFX_SMSQUEUE_H__CE6B60AC_E02C_4908_9180_AEBFD9A18166__INCLUDED_)
